package com.example.onlinemusicserver.mapper;

import com.example.onlinemusicserver.model.Music;
import org.apache.ibatis.annotations.Mapper;

import java.sql.Timestamp;
import java.util.List;

@Mapper
public interface MusicMapper {
    /**
     * 上传音乐
     * @param title 音乐名
     * @param author 歌手
     * @param path 对应的地址
     * @param userId 上传的用户Id
     * @return 返回影响行数
     */
    int insert(String title, String author, String uploadtime,String path,String imgpath, int userId);

    /**
     * 通过音乐名去查找歌曲.
     * @param title 音乐名
     * @return 对应音乐名的所有歌曲
     */
    List<Music> selectByTitle(String title);

    /**
     * 通过音乐Id去查找歌曲
     * @param musicId 音乐Id
     * @return 查找到的音乐Id
     */
    Music selectById(int musicId);

    /**
     * 删除对应音乐Id的歌曲
     * @param musicId 音乐Id
     * @return 返回影响行数
     */
    int deleteById(int musicId);

    /**
     * 查找所有的歌曲
     * @return 所有的歌曲
     */
    List<Music> findMusic(int pageRange, int pageSize);

    /**
     * 支持模糊查询的歌曲.
     * @param name 部分歌曲名
     * @return 对应所有的歌曲
     */
    List<Music> findMusicByName(String name,int pageRange, int pageSize);

    /**
     * 计算音乐总数
     * @param name 可能为空
     * @return
     */
    int totalMusic(String name);
}
